package com.bt.lms.dao.servise;

import com.bt.lms.bo.PageConditionQueryApplyStudent;
import com.bt.lms.entity.EnrollmentPlan;
import com.bt.lms.entity.RegStuInfo;
import com.bt.lms.entity.page.Page;

import java.sql.SQLException;

/**
 * 报名学员Dao
 *
 * @author 朱传博
 */
public interface RegStuDao {

    /**
     * 插入数据
     *
     * @param sql 执行的sql语句
     * @return 影响的行数
     */
    public int insert(String sql, RegStuInfo regStuInfo) throws ClassNotFoundException, SQLException;

    /**
     * 报名学员材料
     *
     * @param sql        sql语句
     * @param regStuInfo 报名学员信息
     * @return 影响行数
     */
    public int insert1(String sql, RegStuInfo regStuInfo) throws SQLException, ClassNotFoundException;


    /**
     * 查询数据
     *
     * @param sql        执行的sql语句
     * @param regStuInfo 要查看的报名学员信息
     * @return 学员信息
     */
    public RegStuInfo selectStu(String sql, RegStuInfo regStuInfo,Long applyInfoId ) throws ClassNotFoundException, SQLException;


    /**
     * 查看报名学员材料
     *
     * @param sql1       sql语句
     * @param regStuInfo 要查看的报名学员材料信息
     * @return 报名学员材料
     */
    public RegStuInfo selectStuMaterial(String sql1, RegStuInfo regStuInfo,Long applyInfoId ) throws ClassNotFoundException, SQLException;


    /**
     * 查看报名学员所属的招生计划
     *
     * @param sql3  sql语句
     * @param enpID 要查找招生计划的id
     * @return 招生计划信息
     */
    public EnrollmentPlan selectEnp(String sql3, Long enpID,Long applyInfoId ) throws ClassNotFoundException, SQLException;

    /**
     * 编辑报名学员信息
     * @param sql sql语句
     * @param applyInfoID 要编辑的报名学员id
     * @param regStuInfo 报名学员信息
     * @return 是否成功
     */
    public boolean editRegStuInfo(String sql, Long applyInfoID,RegStuInfo regStuInfo) throws ClassNotFoundException, SQLException;

    /**
     * 删除报名学员信息
     * @param sql sql语句
     * @param applyInfoId 要删除的报名学员ID
     * @return 是否成功
     */
    public boolean deleteRegStuInfo(String sql,Long applyInfoId) throws ClassNotFoundException, SQLException;


    /**
     * 分页查询报名学员信息
     * @return 报名学员信息
     */
    public Page<RegStuInfo> pageQuery(String sql, Page<PageConditionQueryApplyStudent> page) throws SQLException;











}
